home *** CD-ROM | disk | FTP | other *** search
/ Languguage OS 2 / Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO / language / parallax / mac_sit.hqx / Parallaxis 2.11 / auto.z < prev    next >
Text File  |  1992-01-09  |  3KB  |  83 lines

  1. START
  2. 79 PE
  3. 2 PORTS
  4. SCALAR     I1 I1
  5. VECTOR     I1 B3
  6.     1  :    GOTO 33;
  7.     2  :    PROC 1 VECTOR I1;
  8.         POPV VI1:1;
  9.         VI[VI1:1] := 0;
  10.         PUSHV VI1:1;
  11.         RETURN;
  12.     3  :    PROC 1;
  13.         ERROR "value out of range";
  14.         RETURN;
  15.     4  :    PROC 1
  16.         SCALAR    
  17.         VECTOR     I2 I1; group number 1
  18.         PUSHV ADDR VI1:2;
  19.     5  :    VI1:1 := ID - 1; for LIST calculating DIMi
  20.         VI1:1 := VI1:1 + 1;      DIM1
  21.     6  :    VI1:3 := VI1:1 - 1;
  22.     7  :    VI1:3 := VI1:3 - 1;
  23.     8  :    VI1:2 := VI1:3;
  24.         VI1:2 := VI1:2 + 1;
  25.         IF VI1:3 < 0 CALL 2;
  26.         IF VI1:3 > 78 CALL 2;
  27.         CONNECT 1 TO 2 AT VI1:2;
  28.     9  :    VI1:3 := VI1:1 + 1;
  29.    10  :    VI1:3 := VI1:3 - 1;
  30.    11  :    VI1:2 := VI1:3;
  31.         VI1:2 := VI1:2 + 1;
  32.         IF VI1:3 < 0 CALL 2;
  33.         IF VI1:3 > 78 CALL 2;
  34.         CONNECT 2 TO 1 AT VI1:2;
  35.    12  :    POPV VI1:2;
  36.    13  :    RETURN;    group number : 1
  37.    14  :    PROC 1;    configuration : LIST
  38.         VI0:1 := ID - 1; for LIST calculating DIMi
  39.         VI0:1 := VI0:1 + 1;      DIM1
  40.         RETURN;    configuration : LIST
  41.    15  :    PROC 1 
  42.         SCALAR     B79 I1 I3    ;     OUT
  43.    16!15  :    STORE VB0:1 TO SB1:1; line 15 column 2 
  44.    17!16  :    SI1:1 := 1; line 16 column 2 
  45.    18  :    SI1:2 := 79;
  46.    19!16  :    IF SI1:1 > SI1:2 GOTO 31; line 16 column 2 
  47.    20!17  :    IF SI1:1 < 1 CALL 3; line 17 column 4 
  48.    21  :    IF 79 < SI1:1 CALL 3;
  49.    22  :    SI1:3 := ADDR SB1:1 - SIZE( B1 );
  50.    23  :    SI1:4 := SI1:1 * SIZE( B1 );
  51.    24  :    SI1:3 := SI1:3 + SI1:4;
  52.    25  :    IF SB[SI1:3] = FALSE GOTO 28;
  53.    26!17  :    WRITE 'X'; line 17 column 17 
  54.    27  :    GOTO 29;
  55.    28!17  :    WRITE ' '; line 17 column 33 
  56.    29  :    SI1:1 := SI1:1 + 1;
  57.    30  :    GOTO 19;
  58.    31!19  :    WRITE EOL; line 19 column 2 
  59.    32!20  :    RETURN;     OUT
  60.    33  :    CALL 4;    connections
  61.    34!23  :    CALL 14; line 23 column 2 
  62.    35!24  :    VB0:1 := FALSE; line 24 column 4 
  63.    36!26  :    CALL 14; line 26 column 2 
  64.    37  :    PARALLEL    00000000000000000000000000000000000000100000000000
  65.                 00000000000000000000000000000;
  66.    38!27  :    VB0:1 := TRUE; line 27 column 4 
  67.    39!28  :    PARALLEL    11111111111111111111111111111111111111111111111111
  68.                 11111111111111111111111111111;
  69.    40!30  :    SI0:1 := 1; line 30 column 2 
  70.    41  :    SI0:2 := 50;
  71.    42!30  :    IF SI0:1 > SI0:2 GOTO 52; line 30 column 2 
  72.    43!31  :    CALL 14; line 31 column 4 
  73.    44!32  :    CALL 15; OUT line 32 column 6 
  74.    45!33  :    VB0:2 := VB0:1; line 33 column 6 
  75.    46  :    PROPAGATE VB0:2 OUT 1 IN 2;
  76.    47!34  :    VB0:3 := VB0:1; line 34 column 6 
  77.    48  :    PROPAGATE VB0:3 OUT 2 IN 1;
  78.    49!35  :    VB0:1 := VB0:2 <> VB0:3; line 35 column 6 
  79.    50  :    SI0:1 := SI0:1 + 1;
  80.    51  :    GOTO 42;
  81.    52  :    END;    CELLULAR_AUTOMATON
  82. STOP
  83.